package 第二讲数据结构;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class AcWing826 {
	static int N=100010;
	static int head;//头节点下标
	static int[] e=new int[N];//节点i的值
	static int[] ne=new int[N];//表示节点i的next指针是多少
	static int idx;//
	private static void init() {
		head=-1;
		idx=0;
	}
	private static void addToHead(int val) {
		e[idx]=val;
		ne[idx]=head;
		head=idx;
		idx++;
		
	}
	private static void add(int k,int val) {
		e[idx]=val;
		ne[idx]=ne[k];
		ne[k]=idx;
		idx++;
	}
	private static void remove(int k) {
		ne[k]=ne[ne[k]];
	}
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
		int m=Integer.parseInt(reader.readLine());
		init();
		while(m-->0) {
			String[] s=reader.readLine().split(" ");
			if(s[0].equals("H")) {//插入头节点
				int val=Integer.parseInt(s[1]);
				addToHead(val);
			}else if(s[0].equals("I")){
				int k=Integer.parseInt(s[1]);
				int val=Integer.parseInt(s[2]);
				add(k-1, val);
			}else {
				int k=Integer.parseInt(s[1]);
				if(k==0) {
					head=ne[head];
				}else {
					remove(k-1);
				}
			}
		}
		//打印输出
		for(int i=head;i!=-1;i=ne[i]) {
			System.out.print(e[i]+" ");
		}

	}

}
